package com.faner.fast.upms.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.faner.fast.base.PageDTO;
import com.faner.fast.upms.domain.dto.SysUserDTO;
import com.faner.fast.upms.domain.vo.SysUserVO;
import com.faner.fast.upms.model.SysUserDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 用户表 Mapper 接口
 * </p>
 */
@Mapper
public interface SysUserMapper extends BaseMapper<SysUserDO> {

    /**
     * 通过用户名查询用户信息（含有角色信息）
     * @param username 用户名
     * @return userVo
     */
    SysUserVO getUserVoByUsername(String username);

    /**
     * 分页查询用户信息（含角色）
     * @param page 分页
     * @param userDTO 查询参数
     * @return list
     */
    IPage<List<SysUserVO>> getUserVosPage(Page page, @Param("query") SysUserDTO userDTO);

    /**
     * 通过ID查询用户信息
     * @param id 用户ID
     * @return userVo
     */
    SysUserVO getUserVoById(Long id);

    /**
     * 通过角色标识{roleCode}查询用户信息
     * @param roleCode 角色标识
     * @return List
     */
    IPage<List<SysUserVO>> listUsersByRoleCode(Page page,String roleCode);

}
